/**
 * @author liangxi
 * @since 2023/12/21
 */

#ifndef DESIGNPATTERN_COFFEE_H
#define DESIGNPATTERN_COFFEE_H

#include <iostream>

namespace TemplateMethod_SB {

    class Coffee {
    public:
        void prepareRecipe() {
            boilWater();
            brewCoffeeGrinds();
            pourInCup();
            addSugarAndMilk();
        }

        void boilWater() {
            std::cout << "Boiling water" << std::endl;
        }

        void brewCoffeeGrinds() {
            std::cout << "Dripping Coffee through filter" << std::endl;
        }

        void pourInCup() {
            std::cout << "Pouring into cup" << std::endl;
        }

        void addSugarAndMilk() {
            std::cout << "Adding Sugar and Milk" << std::endl;
        }
    };

} // TemplateMethod_SB

#endif //DESIGNPATTERN_COFFEE_H
